﻿using System;
using System.Collections.Generic;

namespace MES.Server.API.Dto.Weather
{
    /// <summary>
    /// 返回前端的天气信息
    /// </summary>
    public class WeatherOutPut
    {
        /// <summary>
        /// 城市名称
        /// </summary>
        public string CityName { get; set; }

        /// <summary>
        /// 城市ID
        /// </summary>
        public string CityId { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public double? Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public double? Latitude { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime UpdateTime { get; set; }

        /// <summary>
        /// 数据来源
        /// </summary>
        public string DataSource { get; set; }

        /// <summary>
        /// 未来7天天气预报列表
        /// </summary>
        public List<DailyWeather> DailyForecast { get; set; } = new List<DailyWeather>();
    }

    /// <summary>
    /// 每日天气信息
    /// </summary>
    public class DailyWeather
    {
        /// <summary>
        /// 日期
        /// </summary>
        public DateTime Date { get; set; }

        /// <summary>
        /// 最高温度（摄氏度）
        /// </summary>
        public double? MaxTemperature { get; set; }

        /// <summary>
        /// 最低温度（摄氏度）
        /// </summary>
        public double? MinTemperature { get; set; }

        /// <summary>
        /// 白天天气状况描述
        /// </summary>
        public string DayWeather { get; set; }

        /// <summary>
        /// 夜间天气状况描述
        /// </summary>
        public string NightWeather { get; set; }

        /// <summary>
        /// 白天天气图标代码
        /// </summary>
        public string DayIcon { get; set; }

        /// <summary>
        /// 夜间天气图标代码
        /// </summary>
        public string NightIcon { get; set; }

        /// <summary>
        /// 风向
        /// </summary>
        public string WindDirection { get; set; }

        /// <summary>
        /// 风速（公里/小时）
        /// </summary>
        public double? WindSpeed { get; set; }

        /// <summary>
        /// 湿度（百分比）
        /// </summary>
        public int? Humidity { get; set; }

        /// <summary>
        /// 气压（百帕）
        /// </summary>
        public double? Pressure { get; set; }

        /// <summary>
        /// 能见度（公里）
        /// </summary>
        public double? Visibility { get; set; }

        /// <summary>
        /// 紫外线指数
        /// </summary>
        public int? UvIndex { get; set; }

        /// <summary>
        /// 降水量（毫米）
        /// </summary>
        public double? Precipitation { get; set; }

        /// <summary>
        /// 降水概率（百分比）
        /// </summary>
        public int? PrecipitationProbability { get; set; }

        /// <summary>
        /// 云量（百分比）
        /// </summary>
        public int? CloudCover { get; set; }

        /// <summary>
        /// 露点温度（摄氏度）
        /// </summary>
        public double? DewPoint { get; set; }
    }
}
